1. Bases de datos en AWS

Las bases de datos permiten almacenar, organizar y consultar información de forma estructurada.

Actualmente prácticamente todas las aplicaciones modernas utilizan bases de datos:

  • Redes sociales
  • Tiendas online
  • Aplicaciones móviles
  • Sistemas bancarios
  • Videojuegos

Problemas tradicionales

  • Mantenimiento servidores
  • Copias de seguridad
  • Escalabilidad
  • Seguridad
  • Alta disponibilidad

AWS simplifica gran parte de estos problemas mediante servicios administrados.

En cloud computing, muchas empresas prefieren delegar la administración de bases de datos en AWS para reducir trabajo operativo.

Mini-test

¿Qué permite una base de datos?

Organizar y consultar información
Crear direcciones IP
Gestionar DNS
Crear máquinas virtuales

2. Bases de datos relacionales

Las bases de datos relacionales organizan información en tablas.

Cada tabla contiene filas y columnas.

Elementos principales

  • Tabla → entidad
  • Fila → registro
  • Columna → atributo

Ejemplo

ID Nombre Edad
1 Ana 21
2 Luis 30

Ventajas

  • Integridad de datos
  • Relaciones entre tablas
  • Consultas potentes
  • Estándar SQL
Pregunta típica: PostgreSQL y MySQL son relacionales.

Mini-test

¿Cómo se organiza una base de datos relacional?

En tablas
En carpetas
En buckets
En snapshots

3. Claves primarias y foráneas

Primary Key

Identifica de forma única cada fila.

id SERIAL PRIMARY KEY

Foreign Key

Relaciona tablas entre sí.

Ejemplo conceptual

usuarios
---------
id
nombre

pedidos
---------
id
usuario_id

usuario_id conecta pedidos con usuarios.

Ventajas

  • Evitar duplicados
  • Mantener integridad
  • Crear relaciones complejas
Las relaciones son una de las mayores ventajas de SQL frente a muchas bases NoSQL.

Mini-test

¿Qué hace una clave primaria?

Identificar filas únicas
Crear backups
Conectar internet
Cifrar discos

4. On-Premise vs EC2 vs RDS

On-Premise

La empresa administra absolutamente todo:

  • Hardware
  • Red
  • Sistema operativo
  • Base de datos
  • Backups

Amazon EC2

AWS administra infraestructura física, pero nosotros seguimos administrando la base de datos.

Amazon RDS

AWS automatiza:

  • Instalación
  • Backups
  • Parches
  • Alta disponibilidad
Modelo Responsabilidad usuario
On-Premise Todo
EC2 SO y BD
RDS Uso y optimización
RDS reduce muchísimo trabajo administrativo.

Mini-test

¿Qué servicio administra automáticamente backups?

Amazon RDS
EC2 manual
SSH
VPC

5. Amazon RDS

Amazon RDS (Relational Database Service) es el servicio administrado de bases de datos relacionales de AWS.

Motores soportados

  • PostgreSQL
  • MySQL
  • MariaDB
  • Oracle
  • SQL Server
  • Amazon Aurora

Ventajas

  • Backups automáticos
  • Escalabilidad
  • Monitorización
  • Alta disponibilidad
  • Menos administración
Aurora es la base de datos propia de AWS compatible con MySQL y PostgreSQL.

Mini-test

¿Qué significa RDS?

Relational Database Service
Remote DNS System
Routing Data Server
Relational Disk Storage

6. Instancias en Amazon RDS

Al crear una base de datos RDS debemos elegir varios elementos fundamentales.

Clase de instancia

Define CPU, RAM y red.

Almacenamiento

  • HDD
  • SSD
  • Provisioned IOPS

Motor

Define el software de base de datos.

Motor Uso habitual
PostgreSQL Open source avanzado
MySQL Aplicaciones web
Aurora Máximo rendimiento AWS
Más potencia implica mayor coste.

Mini-test

¿Qué define la clase de instancia?

CPU y RAM
Solo DNS
Nombre bucket
Snapshots S3

7. Amazon RDS dentro de una VPC

Por seguridad, las bases de datos RDS suelen colocarse en subredes privadas.

Arquitectura típica

Internet
↓
EC2 pública
↓
RDS privada

Ventajas

  • Mayor seguridad
  • Menos exposición
  • Acceso controlado

Los usuarios nunca acceden directamente a la base de datos.

La aplicación EC2 actúa como intermediaria entre usuarios y RDS.
Nunca es recomendable exponer bases de datos directamente a internet.

Mini-test

¿Dónde suele colocarse RDS?

Subred privada
Internet pública
CloudFront
Bucket S3

8. Multi-AZ y alta disponibilidad

Multi-AZ crea automáticamente una copia sincronizada en otra zona de disponibilidad.

Funcionamiento

  • Base principal
  • Base secundaria
  • Replicación síncrona

Failover

Si falla la principal, AWS cambia automáticamente a la secundaria.

Objetivo principal

Evitar caídas.

Multi-AZ mejora disponibilidad, NO el rendimiento.

Mini-test

¿Qué objetivo tiene Multi-AZ?

Alta disponibilidad
Más CPU
Más almacenamiento S3
DNS global

9. Read Replicas

Las réplicas de lectura permiten escalar consultas SQL.

Funcionamiento

  • Principal → escritura
  • Réplica → lecturas

Replicación asíncrona

Puede existir un pequeño retraso entre principal y réplica.

Casos típicos

  • Consultas pesadas
  • Aplicaciones muy visitadas
  • Escalabilidad horizontal
Multi-AZ Read Replica
Alta disponibilidad Rendimiento
Failover automático Lecturas escaladas
Read Replicas mejoran rendimiento de lectura, no sustituyen Multi-AZ.

Mini-test

¿Qué mejoran las Read Replicas?

Rendimiento en lecturas
Conexión SSH
DNS
Buckets

10. PostgreSQL en EC2

También podemos instalar manualmente PostgreSQL dentro de una instancia EC2 Ubuntu.

Instalación

sudo apt update -y

sudo apt -y install postgresql postgresql-contrib

sudo apt -y install postgresql-client

Activar servicio

sudo systemctl enable --now postgresql

sudo systemctl status postgresql --no-pager

Entrar como administrador

sudo -u postgres psql
En EC2 nosotros administramos completamente PostgreSQL.

Mini-test

¿Qué comando inicia PostgreSQL?

systemctl enable --now postgresql
aws start database
mysql start
service dns

11. SQL básico y pruebas

Crear base de datos

CREATE DATABASE fp_prometeo;

Crear usuario

CREATE USER alumno 
WITH ENCRYPTED PASSWORD 'Alumno123!';

Permisos

GRANT ALL PRIVILEGES ON DATABASE fp_prometeo TO alumno;

Crear tabla

CREATE TABLE visitas (
 id SERIAL PRIMARY KEY,
 alumno TEXT NOT NULL,
 momento TIMESTAMP NOT NULL DEFAULT now()
);

Insertar datos

INSERT INTO visitas (alumno)
VALUES ('Ana'), ('Luis');

Consultar datos

SELECT * FROM visitas ORDER BY id;
SQL es el lenguaje estándar de bases de datos relacionales.

Mini-test

¿Qué comando consulta registros?

SELECT
DELETE DNS
RUN EC2
CREATE VPC

12. Seguridad en bases de datos AWS

Buenas prácticas

  • Subredes privadas
  • Security Groups restrictivos
  • Contraseñas fuertes
  • Cifrado
  • Backups automáticos

Puerto PostgreSQL

5432

Puerto MySQL

3306
Nunca abras puertos de bases de datos a todo internet.

Mini-test

¿Qué puerto usa PostgreSQL?

5432
80
443
22

13. Costes y facturación RDS

RDS cobra principalmente mientras la base de datos está activa.

Factores principales

  • Tipo instancia
  • Motor
  • Almacenamiento
  • Transferencia datos
  • Multi-AZ

Modalidades

Modo Ventaja
On-Demand Flexible
Reserved Más barato
Multi-AZ aumenta seguridad pero también costes.

Mini-test

¿Qué modalidad suele ser más barata?

On-Demand
Reserved
Snapshot
Free DNS

14. Arquitectura completa típica

Arquitectura segura moderna

Usuarios
↓
Internet
↓
Load Balancer
↓
EC2 pública
↓
RDS privada

Funcionamiento

  • Usuarios acceden a aplicación
  • EC2 procesa peticiones
  • RDS almacena datos
  • Backups automáticos protegen información

Ventajas

  • Escalabilidad
  • Seguridad
  • Alta disponibilidad
  • Automatización
Este tipo de arquitectura es extremadamente común en aplicaciones cloud reales.
Separar frontend y base de datos mejora muchísimo la seguridad.

Mini-test

¿Dónde suele ubicarse la base de datos?

Subred privada
Internet pública
CloudFront
Route 53